Generally described, computing devices, such as mobile devices, can provide users with various functionality or functions through the execution of applications. In one aspect, a computing device, often referred to as a client computing device, can execute software code, referred to as a software application, that has been configured specifically for the operating system or operating environment associated with the client device. Based on their dependence to the operating system, such custom applications can be referred to as native application. In another aspect, network-based applications, also referred to as web apps or web applications, are hosted by browser software applications are used ubiquitously by users on communication networks, such as the Internet. Common web applications include electronic mail, online retail sales, online auctions, wikis and many other functions that are available for use over a network.
Unlike native applications, web applications allows for the development of an application that can be independent of a type of computer or operating system that is hosting the browser software application. Web applications commonly use a combination of server-side script (such as active server pages (ASP), PHP, etc.) and client-side script (such as hypertext markup language (HTML), JavaScript, etc.) to implement the web application. The client-side script can determine the presentation of information on the browser while the server-side script can be configured to store and retrieve information from a server.
Because web applications are hosted by a browser on a client computing device independent of operating environment, a user can use any computing device and or operating system that has a browser capable of executing on the client device. Web applications are popular due to the ubiquity of browsers, and the convenience of using a browser as a client. The ability to update and maintain web application without distributing and installing software on potentially thousands of client computers is an important reason for their popularity, as is the inherent support for cross-platform compatibility.
In a typical web application, a user is required to be in active communication with a network in order to access the content and functionality associated with the web application. This can lead to difficulties if a user needs to use the web application in an area has little or no network connectivity.